home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / ada / gnat1792.zip / gnat179b / t-adainc / a-strfix.ads < prev    next >
Text File  |  1994-05-19  |  8KB  |  204 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNAT RUNTIME COMPONENTS                          --
  4. --                                                                          --
  5. --                    A D A . S T R I N G S . F I X E D                     --
  6. --                                                                          --
  7. --                                 S p e c                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.3 $                              --
  10. --                                                                          --
  11. --           Copyright (c) 1992,1993,1994 NYU, All Rights Reserved          --
  12. --                                                                          --
  13. -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  14. -- terms of the  GNU General Public License as published  by the Free Soft- --
  15. -- ware  Foundation;  either version 2,  or (at your option) any later ver- --
  16. -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  17. -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  18. -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
  19. -- for  more details.  You should have  received  a copy of the GNU General --
  20. -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
  21. -- to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. --
  22. --                                                                          --
  23. ------------------------------------------------------------------------------
  24.  
  25.  
  26. with Ada.Strings.Maps;
  27. with Ada.Strings.Search;
  28.  
  29. package Ada.Strings.Fixed is
  30.    pragma Pure;
  31.  
  32.    Blank : constant Character := ' ';
  33.    Pad   : constant Character := ' ';
  34.  
  35.    --------------------------------------------------------------
  36.    -- Copy Procedure for Strings of Possibly Different Lengths --
  37.    --------------------------------------------------------------
  38.  
  39.    procedure Move (Source  : in  String;
  40.                    Target  : out String;
  41.                    Drop    : in  Truncation := Error;
  42.                    Justify : in  Alignment  := Left;
  43.                    Pad     : in  Character  := Fixed.Pad);
  44.  
  45.    ------------------------
  46.    -- Search Subprograms --
  47.    ------------------------
  48.  
  49.    --  Note: in this implementation, these search subprograms are in a
  50.    --  separate package Ada.Strings.Search. The declarations are thus
  51.    --  replaced by renamings of these routines (which is perfectly valid
  52.    --  since it is semantically undetectable that we have renamings here
  53.    --  rather than "real" subprogram declarations).
  54.  
  55.    function Index (Source   : in String;
  56.                    Pattern  : in String;
  57.                    Going    : in Direction := Forward;
  58.                    Mapping  : in Maps.Character_Mapping
  59.                                 := Maps.Identity)
  60.      return Natural
  61.      renames Ada.Strings.Search.Index;
  62.  
  63.  
  64.    function Index (Source : in String;
  65.                    Set    : in Maps.Character_Set;
  66.                    Test   : in Membership := Inside;
  67.                    Going  : in Direction  := Forward)
  68.      return Natural
  69.      renames Ada.Strings.Search.Index;
  70.  
  71.  
  72.    function Index_Non_Blank (Source : in String;
  73.                              Going  : in Direction := Forward)
  74.      return Natural
  75.      renames Ada.Strings.Search.Index_Non_Blank;
  76.  
  77.    function Count (Source   : in String;
  78.                    Pattern  : in String;
  79.                    Mapping  : in Maps.Character_Mapping
  80.                                  := Maps.Identity)
  81.      return Natural
  82.      renames Ada.Strings.Search.Count;
  83.  
  84.    function Count (Source   : in String;
  85.                    Set      : in Maps.Character_Set)
  86.      return Natural
  87.      renames Ada.Strings.Search.Count;
  88.  
  89.    procedure Find_Token (Source : in String;
  90.                          Set    : in Maps.Character_Set;
  91.                          Test   : in Membership;
  92.                          First  : out Positive;
  93.                          Last   : out Natural)
  94.      renames Ada.Strings.Search.Find_Token;
  95.  
  96.    ------------------------------------
  97.    -- String Translation Subprograms --
  98.    ------------------------------------
  99.  
  100.    function Translate (Source  : in String;
  101.                        Mapping : in Maps.Character_Mapping)
  102.       return String;
  103.  
  104.    procedure Translate (Source  : in out String;
  105.                         Mapping : in Maps.Character_Mapping);
  106.  
  107.    ---------------------------------------
  108.    -- String Transformation Subprograms --
  109.    ---------------------------------------
  110.  
  111.    function Replace_Slice
  112.       (Source   : in String;
  113.        Low      : in Positive;
  114.        High     : in Natural;
  115.        By       : in String)
  116.       return String;
  117.  
  118.    procedure Replace_Slice
  119.       (Source   : in out String;
  120.        Low      : in Positive;
  121.        High     : in Natural;
  122.        By       : in String;
  123.        Drop     : in Truncation := Error;
  124.        Justify  : in Alignment  := Left;
  125.        Pad      : in Character  := Fixed.Pad);
  126.  
  127.  
  128.    function Insert (Source   : in String;
  129.                     Before   : in Positive;
  130.                     New_Item : in String)
  131.       return String;
  132.  
  133.    procedure Insert (Source   : in out String;
  134.                      Before   : in Positive;
  135.                      New_Item : in String;
  136.                      Drop     : in Truncation := Error);
  137.  
  138.  
  139.    function Overwrite (Source   : in String;
  140.                        Position : in Positive;
  141.                        New_Item : in String)
  142.       return String;
  143.  
  144.    procedure Overwrite (Source   : in out String;
  145.                         Position : in Positive;
  146.                         New_Item : in String;
  147.                         Drop     : in Truncation := Right);
  148.  
  149.  
  150.    function Delete (Source  : in String;
  151.                     From    : in Positive;
  152.                     Through : in Natural)
  153.       return String;
  154.  
  155.    procedure Delete (Source  : in out String;
  156.                      From    : in Positive;
  157.                      Through : in Natural;
  158.                      Justify : in Alignment := Left;
  159.                      Pad     : in Character := Fixed.Pad);
  160.  
  161.    ---------------------------------
  162.    -- String Selector Subprograms --
  163.    ---------------------------------
  164.  
  165.    function Trim
  166.       (Source : in String)
  167.       return String;
  168.  
  169.    function Trim
  170.       (Source : in String;
  171.        Left   : in Maps.Character_Set;
  172.        Right  : in Maps.Character_Set)
  173.       return String;
  174.  
  175.    procedure Trim
  176.       (Source  : in out String;
  177.        Left    : in Maps.Character_Set;
  178.        Right   : in Maps.Character_Set;
  179.        Justify : in Alignment := Ada.Strings.Left;
  180.        Pad     : in Character := Fixed.Pad);
  181.  
  182.  
  183.    function Head (Source : in String;
  184.                   Count  : in Natural;
  185.                   Pad    : in Character := Fixed.Pad)
  186.       return String;
  187.  
  188.    function Tail (Source : in String;
  189.                   Count  : in Natural;
  190.                   Pad    : in Character := Fixed.Pad)
  191.       return String;
  192.  
  193.    ----------------------------------
  194.    -- String Constructor Functions --
  195.    ----------------------------------
  196.  
  197.    function "*" (Left  : in Natural;
  198.                  Right : in Character) return String;
  199.  
  200.    function "*" (Left  : in Natural;
  201.                  Right : in String) return String;
  202.  
  203. end Ada.Strings.Fixed;
  204.